package com.fileupload.server;

import com.fileupload.config.ServerConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 连接工厂类，用于创建不同类型的服务器连接
 * @author 小乙
 */
public class ConnectionFactory {
    private static final Logger logger = LoggerFactory.getLogger(ConnectionFactory.class);
    
    /**
     * 根据服务器配置创建连接
     */
    public static Connection createConnection(ServerConfig serverConfig) {
        if (serverConfig == null) {
            logger.error("服务器配置为空，无法创建连接");
            return null;
        }
        
        String protocol = serverConfig.getProtocol();
        if (protocol == null) {
            logger.error("服务器协议未指定，无法创建连接: {}", serverConfig.getName());
            return null;
        }
        
        switch (protocol.toLowerCase()) {
            case "ftp":
                logger.info("创建FTP连接: {}", serverConfig.getName());
                return new FtpConnection(serverConfig);
            case "sftp":
                logger.info("创建SFTP连接: {}", serverConfig.getName());
                return new SftpConnection(serverConfig);
            default:
                logger.error("不支持的协议类型: {}", protocol);
                return null;
        }
    }
}